// type: 主要是用来自定义新类型的。它支持基本数据类型的定义。
// interface: 接口，主要是定义对象约束，对一个对象类型进行描述。它不支持基本数据类型的定义。

// 使用场景上：如果希望得到一个新的类型，使用type定义。如果希望对一个对象的结构和类型进行约束，使用interface定义。

// 创建了一个新的TS类型。
type BaseType = boolean | string | undefined;

let isDefault: BaseType = undefined;
isDefault = true;
isDefault = "false";

let myName: BaseType = undefined;
myName = "小王";
myName = false;

let myName1: BaseType = undefined;
myName = "小王";
myName = false;

interface IPeople {
  id: number;
  show?: boolean;
  name: string;
}
let p: IPeople = {
  id: 1,
  show: true,
  name: "小王",
};
let pp: IPeople = {
  id: 1,
  show: true,
  name: "小王",
};
